package cn.linkstudy.service;

import com.baomidou.mybatisplus.extension.service.IService;
import cn.linkstudy.entity.AiQuestion;
import cn.linkstudy.entity.AiChat;
import cn.linkstudy.entity.ChatRecord;

import java.util.Map;

/**
 * AI服务接口，定义AI相关业务方法
 */
public interface AiService extends IService<AiQuestion> {

    /**
     * AI出题
     * 
     * @param userId     用户ID
     * @param subject    学科
     * @param grade      年级
     * @param difficulty 难度
     * @return 题目信息
     */
    Map<String, Object> generateQuestion(Long userId, String subject, String grade, String difficulty);

    /**
     * AI对话
     * 
     * @param userId    用户ID
     * @param sessionId 会话ID
     * @param message   用户消息
     * @return AI回复
     */
    String chat(Long userId, String sessionId, String message);

    /**
     * 获取用户的出题历史
     * 
     * @param userId 用户ID
     * @return 出题历史列表
     */
    java.util.List<AiQuestion> getUserQuestions(Long userId);

    /**
     * 获取用户的对话历史
     * 
     * @param userId    用户ID
     * @param sessionId 会话ID
     * @return 对话历史列表
     */
    java.util.List<ChatRecord> getUserChats(Long userId, String sessionId);

    /**
     * AI引导式出题（多轮消息）
     * 
     * @param messages 消息列表
     * @return AI回复
     */
    String guideChatWithMessages(java.util.List<java.util.Map<String, String>> messages);

    /**
     * 获取单个会话历史
     * 
     * @param userId    用户ID
     * @param sessionId 会话ID
     * @return 单个会话历史
     */
    AiChat getHistory(Long userId, String sessionId);
}